﻿using System;
using System.Collections.Generic;

using System.Text;

namespace Rance.Battle
{
    class 迅步追魂1效果 : 技能效果
    {
        public 迅步追魂1效果()
        {
            this.持续类型 = Battle.效果持续类型.一次;
        }

        public decimal 伤害加成系数 = 2.4m;

        Dictionary<攻击技能, 迅步追魂效果备份> list = new Dictionary<攻击技能, 迅步追魂效果备份>();

        public override bool Excute(技能 技能)
        {
            if (技能 is 攻击技能)
            {
                攻击技能 攻击技能 = 技能 as 攻击技能;
                迅步追魂效果备份 备份 = new 迅步追魂效果备份();
                备份.伤害系数 = 攻击技能.伤害系数;
                备份.可被守护 = 攻击技能.可被守护;
                攻击技能.伤害系数 *= 伤害加成系数;
                攻击技能.可被守护 = false;
                list.Add(攻击技能,备份);
                return true;
            }
            else 
            {
                return false;
            }
        }

        public override void Restore()
        {
            foreach (var item in list)
            {
                item.Key.伤害系数 = item.Value.伤害系数;
                item.Key.可被守护 = item.Value.可被守护;
            }
        }

        public class 迅步追魂效果备份 
        {
            public bool 可被守护 { get; set; }
            public decimal 伤害系数 { get; set; }
        }
    }

    class 迅步追魂2效果 : 迅步追魂1效果
    {
        public 迅步追魂2效果() 
        {
            伤害加成系数 = 2.6m;
        }
    }

    class 迅步追魂3效果 : 迅步追魂1效果
    {
        public 迅步追魂3效果() 
        {
            伤害加成系数 = 3m;
        }
    }
}
